package demo5;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * 使用@Component注解标注的类可以被Spring容器管理，除了该注解外，还有几个常见的注解，如果被其标注也受到
 * Spring容器管理。
 * @Repository  将来标注的都是数据持久层的类(与数据库打交道的类)
 * @Service     将来标注的都是业务层的类
 * @Controller  将来标注的都是控制器层的类(在SpringMVC框架中使用)
 */
//@Repository
@Component
//@Service
//@Controller
public class Person {
    /**
     * @Autowired是Spring框架提供的注解，用于告知Spring容器当前类需要依赖次类并要求其进行自动装配
     *
     * @Resource是java原生提供的注解，Spring容器也可以使用它来装配依赖
     * @Resoure注解默认也是依靠类型匹配方式注入依赖的。如果存在多个可匹配依赖依然会抛出冲突异常
     *         例如同时找到Shirt,Sweater时。
     */
   // @Resource(name = "sweater")
   @Autowired
   @Resource(name = "sweater")
   //@Resource
    private Clothes clothes;
   // private Clothes sweater;
    public void play(){
     clothes.wear();
      //  sweater.wear();
        System.out.println("玩");
    }
}
